395da0
@@ -307,10 +307,6 @@
private ZooKeeperHiveLock lock (HiveLockObject key, HiveLockMode mode,
       try {
         if (tryNum > 1) {
           Thread.sleep(sleepTime);
-          if (zooKeeper.getState() == ZooKeeper.States.CLOSED) {
-            // Reconnect if the connection is closed.
-            zooKeeper = null;
-          }
           prepareRetry();
         }
         ret = lockPrimitive(key, mode, keepAlive, parentCreated);
@@ -752,6 +748,10 @@
public void process(org.apache.zookeeper.WatchedEvent event)  {
   @Override
   public void prepareRetry() throws LockException {
     try {
+      if (zooKeeper != null && zooKeeper.getState() == ZooKeeper.States.CLOSED) {
+        // Reconnect if the connection is closed.
+        zooKeeper = null;
+      }
       renewZookeeperInstance(sessionTimeout, quorumServers);
     } catch (Exception e) {
       throw new LockException(e);
